zebra: nhg code selection doesnot check invalid status - #20127
hnattamaisub wants to merge 1 commit into
Conversation
mjstapp
left a comment
There was a problem hiding this comment.
can you say some more about the cases where this would happen - what's the order of events that get zebra into this condition?
Sure, will explain more on what was happening. 1)When a nexthop becomes invalid (e.g., interface down), NHGs are NOT deleted immediately. Instead, they're marked as INVALID (flags=0x0) and cleaned up later. 2)Zebra processes (rib_process) during that timeframe with invalid NHG and enqueue dataplane install failed. Note (This is very very corner case , not hit very frequently , but this check makes sure VALID NHG is selected by zebra during that flap events , which in turn makes the installation success and avoided the issue scenario) Please let me know if my understanding/approach is wrong or more details is needed. Thanks. |
mjstapp
left a comment
There was a problem hiding this comment.
thanks for the explanation - that makes sense to me.
|
without this fix what state are we in? |
Without this fix, we face "Failed to enqueue dataplane install" errors in zebra and ospf routes are not installed in some nodes causing traffic forwarding issue after interface down/up trigger. (More specifically ping failures itself). |
|
ci:rerun |
16eeea1 to
f231dac
Compare
Problem description: 1)In some corner cases in zebra, “Failed to enqueue dataplane install” happened for routes which was caused because of INVALID nhg. 2)Our NHG code logic, check all nexthop entries is valid or not,but it does not check whether the nhg itself is valid or not during our checks which in turn cause route install failures in zebra. Fix: Handled the nhg logic to check for validity during selection. Signed-off-by: harini <hnattamaisub@nvidia.com>
|
This PR is stale because it has been open 180 days with no activity. Comment or remove the |
Problem description:
1)In some corner cases in zebra, “Failed to enqueue dataplane install” happened for routes which was caused because of INVALID nhg.
2)Our NHG code logic, check all nexthop entries is valid or not,but it does not check whether the nhg itself is valid or not during our checks which in turn cause route install failures in zebra.
Fix:
Handled the nhg logic to check for validity during selection.